Dynamically optimized content display

ABSTRACT

Provided are systems and methods for dynamic optimization of content on a client device. In one example, a method for dynamic optimization of content is based on receiving the content and parameters of a display area associated with the content from an enterprise system. The enterprise system is pre-configured based on predetermined business rules. The content is analyzed to determine properties associated with the content and selectively optimized based on the parameters of the display area and the properties associated with the content. Thereby, optimized content is produced. The optimized content is selectively rendered on the client device, thereby providing for selective optimization and rendering of the content without reconfiguring the enterprise system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This nonprovisional U.S. patent application claims the priority benefitof U.S. provisional patent application No. 61/901,331 filed on Nov. 7,2013, titled “Dynamically Optimized Content Display for Mobile Devicesand Security Plugins”, which is hereby incorporated by reference in itsentirety for all purposes.

FIELD

This application relates generally to enterprise software systems andmore specifically to enterprise resource planning (ERP) systems andplugins associated with ERP systems for selective optimization andrendering of content.

BACKGROUND

ERP systems were originally developed in the 1980s and the 1990s tosupport access by desktop terminals and/or personal computers (PCs).These systems are quite complex, difficult to implement, and requireheavy customization by customers. Oftentimes, ERP systems have specificbusiness rules as well as regulatory and security functionalities, whichare difficult to create and to reconfigure once created.

Existing ERP systems cannot provide users with optimal experience forevery device; optimization of ERP systems for a specific device canrequire extensive customization, purchasing of additional hardware, andvarious system integration.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

The present disclosure is related to dynamic optimization of content.Specifically, according to one example embodiment of the presentdisclosure, a method for dynamic optimization of content includesreceiving the content from an enterprise system and receiving parametersof a display area associated with the content. The enterprise system ispre-configured based on specific business rules. The content is analyzedto determine properties associated with the content and selectivelyoptimized, based on the parameters of display area and the propertiesassociated with the content, to produce optimized content. The optimizedcontent is selectively rendered on a client device, thereby providingselective optimization and rendering of the content withoutreconfiguring the enterprise system.

According to another approach of the present disclosure, there isprovided a system for dynamic optimization of content comprising acommunication module, an analyzing module, an optimization module, and arendering module. The communication module is operable to receive thecontent from an enterprise system and parameters of a display areaassociated with the content. The enterprise system is pre-configuredbased on specific business rules. The analyzing module is operable todetermine properties associated with the content. The optimizationmodule is operable to selectively optimize the content, based on theparameters of the display area and the properties associated with thecontent, thereby producing optimized content. The rendering module isoperable to selectively render the optimized content on a client device.Thus, the selective optimization of the content is provided withoutreconfiguring the enterprise system

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which like references indicatesimilar elements.

FIG. 1 is a schematic high level representation of an ERP systemincluding a system for dynamic optimization of content on clientdevices.

FIG. 2 is a block diagram illustrating a system for dynamic optimizationof content.

FIG. 3 is a schematic representation of various interactions betweencomponents of the ERP system and a client device.

FIG. 4 is a flow diagram illustrating various interactions betweencomponents of the ERP system, a system for dynamic optimization ofcontent, and a client device.

FIG. 5 is a block diagram showing handling of a client request by theERP system with a system for dynamic optimization of content.

FIG. 6 is a process flow chart representing a method for dynamicoptimization of content.

FIG. 7 is a diagrammatic representation of an exemplary machine in theform of a computer system, within which a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed.

DETAILED DESCRIPTION

ERP systems can integrate internal and external management informationacross an entire organization, embracing various relationships withinthe organization, such as finance/accounting, manufacturing, sales andservice, and customer relationship management. ERP systems automate manyof these activities with an integrated software application. The purposeof ERP systems is to facilitate the flow of information between allbusiness functions inside the boundaries of the organization and managethe connections to outside stakeholders. ERP systems can run on avariety of computer hardware and network configurations and typicallyemploy a database as a repository for information.

Many ERP systems are deployed as web-based applications, allowingvarious functions of such ERP systems to be accessed and run from remotelocations via web browsers installed on tablet computers, laptops,mobile telephones, or desktop computers. However, user interfacescreated for using web-applications are not optimized for specificdevices. The system for dynamic optimization of content described hereinenables interactions with client devices of different types withoutadditional customizations by extending instead of replacing ERP systemoutput. The system can perform dynamic optimization of content from anERP system by working with the user interface generated by the ERPsystem. More specifically, the optimization is performed based onparameters of a display area of a client device. The parameters of thedisplay area of the client device can be associated with user activityrelated to the client device. User activity can include usermanipulations on the display area (e.g., by a mouse or a finger). Themanipulations include, for example, changing a size of the display areaby pressing and holding down the mouse button while pulling the mousecursor to the desired end of the display area. Using this approach auser can transform the content layout according to user preferences,thereby improving the usability and user experience.

In some embodiments, the system for dynamic optimization of contentenables customizations and upgrades of an ERP system. This approachallows organizations to avoid custom modifications to client devices asthe system for dynamic optimization of content renders the contentefficiently for any client device. In some embodiments, the system fordynamic optimization of content is a plug-in that is integrated into theweb server. The system for dynamic optimization of content can leveragethe output of the ERP system as the starting point for marking it up forclient device access. The output is analyzed by the system to read thecode/definitions of the ERP system to understand relationships betweenelements in the user interface, parameters of display area received fromthe client device, and the meaning of fields and controls on the userinterface. The existing application infrastructure can be leveraged, forexample, by using a J2EE web server plug-in (servlet filter) to injectthe optimization logic into the processing stream. Interactions betweenthe ERP system and client devices (requests, sessions, and requestedcontent) can be captured by the system for dynamic optimization ofcontent to allow rules for controlling security and content rendering.

In some embodiments, the system for dynamic optimization of contentenables optimizing a user interface based on parameters of display areareceived from the client device. The system for dynamic optimization ofcontent can read the content and processing done on the web server ofthe ERP system. Furthermore, the system can modify the content based onpredetermined rules and in accordance with the parameters of the displayarea as received from the client device. The modifying can includerestructuring the content, injecting additional content, removing atleast a part of the content, and so forth. The dynamic optimization ofthe content is provided without reconfiguring the ERP system.

Referring now to the drawings, FIG. 1 is a schematic high levelrepresentation 100 of an ERP system comprising an ERP applicationdatabase 110, an ERP application server 120, and a web server 130 with asystem 200 for dynamic optimization of content for interacting withvarious types of client devices 150. Client devices 150 include any typeof computer system capable of supporting a web browser and having someinput and output means. Some examples of client devices 150 includedesktops, laptops, notebooks, ultrabooks, tablet computers, handheldcomputers, mobile phones (e.g., smartphones), portable media players,E-book readers, game consoles, and head mounted displays. These devicesmay have a variety of screen sizes and input options.

Client devices 150 are connected to web server 130 using a network (notspecifically shown in FIG. 1). The network can take any suitable form,such as a wide area network (WAN) or Internet and/or one or more localarea networks (LANs). The network includes any suitable number and typeof devices (e.g., routers and switches) for forwarding commands,content, and/or web object requests from each client to the onlinecommunity application and responses back to the clients.

The systems and methods described herein can also be practiced in a widevariety of network environments including, for example, TransmissionControl Protocol (TCP)/IP-based networks, telecommunications networks,wireless networks, and the like. In addition, the computer programinstructions are stored in any type of computer-readable media. Theprogram may be executed according to a variety of computing modelsincluding a client/server model, a peer-to-peer model, and a stand-alonecomputing device, or according to a distributed computing model in whichvarious functionalities described herein are effected or employed atdifferent locations.

As mentioned above, client devices 150 are capable of supporting webbrowsers to generate user interfaces. Web browsers allow users andadministrators to access various applications and administrative toolsof an ERP system. Each client device 150 used for communicating with anERP system has browser software installed therein. Generally, noadditional software (specific to the ERP system) needs to be installedon client devices 150 to implement described methods and systems.

Web server 130 includes a Java-enabled web server for supporting browsertransaction requests and the application messaging technology. Webserver 130 is used to install a collection of servlets (e.g., Javaservlets) designed to handle a wide range of ERP transactions. Someexamples of a web server include an Apache web server, InternetInformation Services (IIS) web server, nginx web server, Google webserver, and Resin web server. The main function of web server 130 is todeliver web pages based on requests from client devices 150. This meansdelivery of HTML documents and any additional content that can beincluded by a document, such as images, style sheets, and scripts. Theweb browser described above typically initiates communication by makinga request for a specific resource using HyperText Transfer Protocol(HTTP), and web server 130 responds with the content of that resource oran error message if unable to do so. Web server 130 is also used toreceive content from client devices 150. This feature is used forsubmitting web forms, including the uploading of files. Web server 130supports server-side scripting using Active Server Pages (ASP), PHP, orother scripting languages. Additional features of web server 130specific to ERP functions are described below.

ERP application server 120 is another part of an ERP system. ERPapplication server 120 executes business logic. It may also beconfigured to issue SQL to ERP application database 110. In other words,ERP application server 120 serves as a link between web server 130 andERP application database 110. ERP application server 120 includesvarious services and server processes that handle transaction requests.ERP application server 120 is also responsible for maintaining the SQLconnection to ERP application database 110 for browser requests. Twoexamples of middleware platforms that are used on ERP application server120 include TUXEDO (Transactions for Unix Extended for DistributedOperations) and Jolt. For example, TUXEDO is used to manage databasetransactions, while Jolt is used to facilitate transaction requestsissued from the Internet.

ERP application database 110, which is sometimes referred to as adatabase server, is yet another component of an ERP system. ERPapplication database 110 contains one or more database engines anddatabases. These, in turn, include object definitions, system tables,application tables, and data. ERP application database 110 may berunning one of the supported relational database management system(RDBMS)/operating system combinations. The relationship between ERPapplication database 110 and ERP application server 120 may be accordingto a one-to-many model. That is, a single ERP application database 110can have multiple ERP application servers 120 connecting to it. ERPapplication database 110 is configured to simultaneously handle multipleapplication server connections, development environment connections, andbatch programs. A component of an ERP system that is not shown in FIG. 1is a batch server. A batch server includes process schedulers, batchprograms (e.g., application engine programs), and COBOL and SQRexecutables.

As stated above, a system 200 for dynamic optimization of content on webserver 130 is configured to communicate with client devices 150. Incertain embodiments, the system 200 for dynamic optimization of contentis implemented as a web server plug-in, which is a set of softwarecomponents that adds specific functionalities to a larger softwareapplication provided on web server 130. This plug-in enables customizingthe functionality of web server 130.

To provide this functionality, system 200 for dynamic optimization ofcontent includes multiple modules, as illustrated in FIG. 2.Specifically, system 200 for dynamic optimization of content includescommunication module 202, analyzing module 204, optimization module 206,and rendering module 208, and, optionally, security module 210, loggingmodule 212, and extracting module 214.

In an example embodiment, communication module 202 is operable toreceive the content from an ERP system. The ERP system is pre-configuredbased on specific business rules. Communication module 202 is furtheroperable to receive parameters of a display area associated with thecontent. The parameters of the display area include one or more of thefollowing: width of the display area, height of the display area,arrangement of the content on the display area, elements to be includedinto the content, elements to be excluded from the content, and soforth. The parameters of the display area are associated with useractivity related to the client device. User activity can include usermanipulations on the display area (e.g., by a mouse). Manipulationincludes, for example, changing a size of the display area by pressingand holding down the mouse button while pulling the mouse cursor to thedesired end of the display area.

In an example embodiment, analyzing module 204 is operable to determineproperties associated with the content. The properties associated withthe content include definition and structure of the enterprise system.

In an example embodiment, optimization module 206 is operable toselectively optimize the content. The content is optimized based on theparameters of the display area and the properties associated with thecontent. The content can be further optimized based on configuration ofthe client device. In such a case, the system 200 for dynamicoptimization of content comprises extracting module 214. Extractingmodule 214 is operable to read and cache configuration of the clientdevice on a web server of the enterprise system.

The optimization module 206 is integrated into a web server of the ERPsystem. As a result of optimization, optimized content is produced.Optimization of the content can include one or more of the following:restructuring the content, injecting additional content, removing atleast a part of the content, and the like.

In an example embodiment, rendering module 208 is operable toselectively render the optimized content on a client device. The clientdevice includes one or more of a desktop, a laptop, a notebook, anultrabook, a smartphone, a tablet computer, and so forth. As a result,the selective optimization of the content is provided withoutreconfiguring the ERP system.

In a further example embodiment, security module 210 is operable toprovide security. The security is based on one or more of the following:a location, a network, rules-based authentication, multiple-factorauthentication, time-based authentication, a proxy associated withrouting of the content, application data, screens associated with thecontent, functionality associated with the content, and so forth.

In another example embodiment, logging module 212 is operable to loginformation related to one or more of the following: an identity of auser and actions performed under the user in the enterprise system, anidentity of the data accessed, a source of a location associated withthe client device, and so forth.

In some embodiments, in order to ensure optimization of the contentbased on configuration of the client device, the functionality of thesystem 200 for dynamic optimization of content is represented by a adminservices component, a navigation component, a user interface component,a client device extensions component, a security component, and ametadata services component.

The admin services component controls the overall processing of thesystem for dynamic optimization of content. Because it is intended tofunction as a seamless part of the ERP application infrastructure, it isdesigned to work in conjunction with the processing already done on theweb server of the ERP system. As such, it makes decisions aboutdisplaying client device rendering, allowing access to content, level oflogging performed, type of content to be served, and/or necessity toreload access rules from the database. In order to make these decisions,the system for dynamic optimization of content understands a profile ofthe user/device accessing the system, state of the plug-in, and type ofrequest being made to the system.

The admin services component uses the following attributes of theuser/device to control access to the system: the browser/operatingsystem making the request to the system (used to determine whether aclient device is accessing the system and make a decision as to whetherto perform rendering) and the location from which the user is accessingthe system (this is used to determine whether to grant or deny access tocontent based on location).

In some embodiments, the type of content requested from the system isused to control the request processing. If the request is for HTMLcontent for the system, the HTML generated by the application will beused as the starting point for rendering. If the request is fornavigation menus, then the plug-in will request the raw menu informationfrom the system and generate its own rendering. If the request is forportal content, then the plug-in will either start with the HTMLgenerated by the application or request the raw data, depending onwhether the request is related to navigation or content.

In some embodiments, the navigation component reads navigation rules ofthe ERP system and repurposes content for client device access. Servicesperformed by the navigation component include reading the hierarchy ofmenu titles and descriptions to be presented in a format of the clientdevice as users drill through the menus; pruning navigation to parts ofthe system that are disabled either due to location security or deviceaccess rules; and keeping track of the breadcrumbs and maintaining abreadcrumb menu to allow easy access without hitting the back button.The latter includes navigating through menu relationships in thenavigation definitions of the application; identifying navigationcollections (pages defined for the purpose of navigation) and displayingthem in a menu form; and identifying when the system was accessed froman external system and embedding the breadcrumb for it in the breadcrumbmenu. To perform these services, the infrastructure of the navigationcomponent includes JQuery menu and navigation components; role-basedcaching of navigation menus to minimize the need to request informationfrom the ERP system about who can access what content; and metadataservices to allow the web server to access the menus, rules, and thelike that drive the presentation and navigation within the system.

In some embodiments, the user interface component takes the userinterface generated by the ERP application and modifies it to workproperly on client devices. This includes marking up the HTML generatedby the ERP system. Marking up the HTML involves several operations. Thefirst operation is marking the HTML as valid HTML5 syntax. Then, itinvolves identifying the meaning of the content on the generated userinterface by looking at the HTML and Asynchronous Javascript AndXML(AJAX XML) generated by the application. The metadata servicescomponent is used in combination with the structure of the userinterface (UI) to decide on an association of page elements, such aspage containers (group boxes), labels, fields, and page controls;movement of groups of entities within the user interface, so that pagescan be displayed in narrow mode and still be meaningful; tagging offields as to the type of field (i.e., numeric, date, time,alphanumeric); honoring of multilingual translations within the ERPsystem; changing controls to touch-optimized controls using JQuery (orsimilar library); and removing extraneous HTML markup (such as extratables and width tags) intended to optimize UI for wide screen monitors.

Another operation that is a part of marking up the HTML is managingJavaScript generated by the ERP system. This consists of stripping outextraneous JavaScript not needed on the client device and embeddingJavaScript to perform processing on the device to minimize the number ofserver trips and improve performance (such as navigating betweenmultiple items within a page).

Also, marking up the HTML includes rules-based templating infrastructureto minimize code serving to process UI services, thereby allowing rapiditerations and deployments without requiring re-compilation of code; anddeciding on logic for making modifications to user interface withoutrequiring expensive processing to walk the document object model (DOM)for each page being rendered.

In some embodiments, the client device extensions component provides acapability for injecting customer-defined logic to the end-product ofthe user interface component. This allows the customer to makeadditional UI tweaks to the ERP system without requiring modification ofeither the core ERP application or the core code of the plug-in. The UItweaks include injecting modifications without changing the plug-in atdifferent locations within the generated UI. This is done based onunderstanding properties of the session/user/and content in the ERPsystem, leveraging the same rules-based templating infrastructure in theUI services to allow robust processing rules based on content, user,session, or application data; and allowing calls to any JavaScriptlibrary that is enabled in the system. The modifications are defined andadministered in relational database pages that are deployed within theuser interface of the ERP system.

In some embodiments, the security component provides device and locationsecurity features to allow easy control, management, and auditing ofaccess to a client device. This includes rules-based means ofidentifying whether to allow or block access to parts of the ERP system;generating detailed logs of all traffic, including date/time, IPaddress, user identity, content accessed, data accessed, and actionstaken; and automatic pruning of navigation UI based on rules.

In some embodiments, the metadata services component represents thebridge between the product processing on the server and the rules bywhich it performs this processing. The metadata services componentprovides services that extract rules that define how the ERP system isdefined and structured, and services that extract rules that drive howthe plug-in should operate on top of the ERP system. By understandingthe meaning of the different parts of the ERP system to be rendered, theplug-in is able to automatically transform the UI of the ERPapplication. For all of these services, the metadata services componentreads the definitions from relational tables and application programminginterfaces (APIs) in the ERP system; stores the definitions in a cacheon the web server to be processed locally; and manages the reading andstoring of the definitions at either web server start-up time or ascontent is requested.

The metadata services component extracts the meaning of all of thepieces of the user interface generated by the ERP system. Because theplug-in understands at a granular level the meaning of all pieces of theERP system, whether developed by the original software developer ormodified by the customer, it is able to automate the optimized renderingof the user interface. The types of metadata read from the ERP system tobe used as part of the plug-in include page element structure, elementproperties, control properties, navigation rules, and user identity andpermissions.

As the metadata services component is configured and administered frompages within the ERP system delivered by the plug-in, it also includesservices to read and cache the client device configuration on the webserver (i.e., branding rules, client device extensions, additional CSSand JavaScript rules).

In some embodiments, because the plug-in contains location-basedsecurity capabilities, the rules that define the access control andlogging are also managed as part of the metadata services.

FIG. 3 is a schematic representation of various interactions betweencomponents of an ERP system, a system 200 for dynamic optimization ofcontent, and a client device 150. Client device 150 is equipped with aweb browser, which uses HTTP protocol. The browser sends requests to webserver 130, which forwards the request to ERP application server 120 andfurther to ERP application database 110. Servlet 302 installed on webserver 130 facilitates all browser connections. Configuration data istransferred to configuration cache 306 and further to the system 200 fordynamic optimization of content. User and device data and activitytracking is transferred to activity monitor 304.

FIG. 4 is a process flow chart representing the handling of a clientrequest by an ERP system with a system for dynamic optimization ofcontent. Method 400 commences with receiving a request from a clientdevice at a web server including a system for dynamic optimization ofcontent during operation 402. The request includes parameters of adisplay area associated with the content to be represented on the clientdevice.

Based on the received request or previously received information, anaccess level available for this type of client device is determinedduring operation 404. The previously received information includesanother request, login information, and/or a cookie. For example, therequest is generated either by a non-mobile computer system or a mobilecomputer system. Depending on the type of computer system, differentaccess levels are given to the device, and the same type of request maybe processed in different manners. Method 400 then proceeds withprocessing the request at an application server of the ERP system basedon the access level during operation 406. This processing operationgenerates an HTML output. The HTML output involves retrieval of ERPinformation from an application database of the ERP system.

Method 400 proceeds with processing the HTML output at the ERP interfacebased on the received parameters of the display area associated with thecontent to generate a client specific HTML output during operation 408,and transmitting the client specific HTML output to the client deviceduring operation 410.

FIG. 5 shows exemplary optimization of content for a client device.Interface items 506 and corresponding controls 508 rendered on a displayarea 502 may be optimized to produce a display area 504 with optimizedarrangement of interface items 510 and corresponding controls 512. Theoptimization can be performed based on received parameters of thedisplay area 504.

FIG. 6 is a process flow chart showing a detailed method for dynamicoptimization of content. The method 600 is performed by processing logicthat comprises hardware (e.g., dedicated logic, programmable logic,microcode, etc.), software (such as that which is run on ageneral-purpose computer system or a dedicated machine), or acombination of both. In one exemplary embodiment, the processing logicresides at the system 200 illustrated in FIG. 2.

The method 600 commences at operation 602 with the communication modulereceiving the content from an ERP system. The ERP system ispre-configured based on specific business rules.

Parameters of a display area associated with the content are received atoperation 604. The parameters of the display area include one or more ofthe following: width of the display area, height of the display area,arrangement of the content on the display area, elements to be includedinto the content, elements to be excluded from the content, and soforth.

At operation 606, the content is analyzed to determine propertiesassociated with the content. The properties associated with the contentinclude definition and structure of the enterprise system.

After receiving the parameters of the display area and determiningproperties associated with the content, the content is selectivelyoptimized at operation 608. As a result, optimized content is produced.The optimization is based on the parameters of the display area and theproperties associated with the content. The optimization of the contentincludes one or more of the following: restructuring the content,injecting additional content, removing at least a part of the content,and the like.

In an example embodiment, the optimization of the content is furtherbased on configuration of a client device. The client device includesone or more of a desktop, a laptop, a notebook, an ultrabook, asmartphone, a tablet computer, and so forth. In such a case,configuration of the client device is read and cached on a web server ofthe ERP system.

Thereafter, the optimized content is selectively rendered on the clientdevice at operation 610. Thus, selective optimization of the content isprovided without reconfiguring the ERP system.

In an example embodiment, method 600 optionally comprises providingsecurity. The security is based on one or more of the following: alocation, a network, rules-based authentication, multiple-factorauthentication, time-based authentication, a proxy associated withrouting of the content, application data, screens associated with thecontent, functionality associated with the content, and so forth.

In a further example embodiment, method 600 optionally comprises logginginformation related to one or more of the following: an identity of auser and actions performed under the user in the enterprise system, anidentity of the data accessed, a source of a location associated withthe client device, and the like.

FIG. 7 is a diagrammatic representation of an exemplary machine in theform of a computer system 700, within which a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed. In various exemplary embodiments, themachine operates as a standalone device or are connected (e.g.,networked) to other machines. In a networked deployment, the machineoperates in the capacity of a server or a client machine in aserver-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine includesa PC, a tablet PC, a set-top box (STB), a cellular telephone, a portablemusic player (e.g., a portable hard drive audio device such as an MovingPicture Experts Group Audio Layer 3 (MP3) player), a web appliance, anetwork router, switch or bridge, or any machine capable of executing aset of instructions (sequential or otherwise) that specify actions to betaken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The exemplary computer system 700 includes a processor or multipleprocessors 702 (e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), or both), and a main memory 708 and static memory714, which communicate with each other via a bus 728. The computersystem 700 further includes a video display 706 (e.g., a liquid crystaldisplay (LCD)). The computer system 700 also includes an alphanumericinput device 712 (e.g., a keyboard), a cursor control device 716 (e.g.,a mouse), a voice recognition or biometric verification unit (notshown), a disk drive unit 720, a signal generation device 726 (e.g., aspeaker) and a network interface device 718. The computer system 700further includes a data encryption module (not shown) to encrypt data.

The disk drive unit 720 includes a computer-readable medium 722 on whichis stored one or more sets of instructions and data structures (e.g.,instructions 710) embodying or utilizing any one or more of themethodologies or functions described herein. The instructions 710 alsoreside, completely or at least partially, within the main memory 708and/or within the processors 702 during execution thereof by thecomputer system 700. The main memory 708 and the processors 702 alsoconstitute machine-readable media.

The instructions 710 are further transmitted or received over a network724 via the network interface device 718 utilizing any one of a numberof well-known transfer protocols (e.g., HTTP).

While the computer-readable medium 722 is shown in an exemplaryembodiment to be a single medium, the term “computer-readable medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database and/or associated caches andservers) that store the one or more sets of instructions. The term“computer-readable medium” shall also be taken to include any mediumthat is capable of storing, encoding, or carrying a set of instructionsfor execution by the machine and that causes the machine to perform anyone or more of the methodologies of the present application, or that iscapable of storing, encoding, or carrying data structures utilized by orassociated with such a set of instructions. The term “computer-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media, and carrier wavesignals. Such media also include, without limitation, hard disks, floppydisks, flash memory cards, digital video disks, random access memory(RAM), read only memory (ROM), and the like.

The exemplary embodiments described herein may be implemented in anoperating environment comprising software installed on a computer, inhardware, or in a combination of software and hardware.

Thus, methods and systems for dynamic optimization of content have beendisclosed. Although embodiments have been described with reference tospecific exemplary embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the system and methoddescribed herein. Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

What is claimed is:
 1. A system for dynamic optimization of content, thesystem comprising: a communication module operable to: receive thecontent from an enterprise system, the enterprise system beingpre-configured based on predetermined business rules, receive parametersof a display area associated with the content; an analyzing moduleoperable to: determine properties associated with the content; anoptimization module operable to selectively optimize the content, basedon the parameters of display area and the properties associated with thecontent, thereby producing optimized content; and a rendering moduleoperable to selectively render the optimized content on a client device,thereby providing for selective optimization of the content withoutreconfiguring the enterprise system.
 2. The system of claim 1, whereinthe parameters of display area include one or more of the following: awidth of the display area, a height of the display area, an arrangementof the content on the display area, an element to be included into thecontent, and an element to be excluded from the content.
 3. The systemof claim 1, wherein the client device includes one or more of a desktop,a laptop, a notebook, an ultrabook, a smartphone, and a tablet computer.4. The system of claim 1, wherein the optimization module is integratedinto a web server associated with the enterprise system.
 5. The systemof claim 1, further comprising a security module operable to providesecurity, wherein the security is based on one or more of the following:a location, a network, rules-based authentication, multiple-factorauthentication, time-based authentication, a proxy associated withrouting of the content, application data, screens associated with thecontent, and functionality associated with the content.
 6. The system ofclaim 1, further comprising a logging module operable to log informationrelated to one or more of the following: an identity of a user andactions performed under the user in the enterprise system, an identityof the data accessed, and a source of a location associated with theclient device.
 7. The system of claim 1, wherein the propertiesassociated with the content include definition and structure of theenterprise system.
 8. The system of claim 1, wherein the optimizing ofthe content includes one or more of the following: restructuring thecontent, injecting additional content, and removing at least a part ofthe content.
 9. The system of claim 1, wherein the parameters of thedisplay area are associated with user activity related to the clientdevice.
 10. The system of claim 1, wherein the optimizing of the contentis further based on configuration of the client device.
 11. The systemof claim 1, further comprising an extracting module operable to read andcache a configuration of the client device on a web server of theenterprise system.
 12. A method for dynamic optimization of content, themethod comprising: receiving the content from an enterprise system, theenterprise system being pre-configured based on predetermined businessrules; receiving parameters of a display area associated with thecontent; analyzing the content to determine properties associated withthe content; selectively optimizing the content, based on the parametersof the display area and the properties associated with the content,thereby producing optimized content; and selectively rendering theoptimized content on a client device, thereby providing for theselective optimization of the content without reconfiguring theenterprise system.
 13. The method of claim 12, wherein the parameters ofdisplay area include one or more of the following: a width of thedisplay area, a height of the display area, an arrangement of thecontent on the display area, an element to be included into the content,and an element to be excluded from the content.
 14. The method of claim12, wherein the client device includes one or more of a desktop, alaptop, a notebook, an ultrabook, a smartphone, and a tablet computer.15. The method of claim 12, further comprising providing security,wherein the security is based on one or more of the following: alocation, a network, rules-based authentication, multiple-factorauthentication, time-based authentication, a proxy associated withrouting of the content, application data, screens associated with thecontent, and functionality associated with the content.
 16. The methodof claim 12, wherein the optimizing of the content includes one or moreof the following: restructuring the content, injecting additionalcontent, and removing at least a part of the content.
 17. The method ofclaim 12, further comprising logging information related to one or moreof the following: an identity of a user and actions performed under theuser in the enterprise system, an identity of the data accessed, and asource of a location associated with the client device.
 18. The methodof claim 12, wherein the properties associated with the content includedefinition and structure of the enterprise system.
 19. The method ofclaim 12, further comprising reading and caching a configuration of theclient device on a web server.
 20. A non-transitory processor-readablemedium having instructions stored thereon, which when executed by one ormore processors, cause the one or more processors to implement a methodfor dynamic optimization of content, the method comprising: receivingthe content from a enterprise system, the enterprise system beingpre-configured based on predetermined business rules; receivingparameters of a display area associated with the content; determiningproperties associated with the content; selectively optimizing thecontent, based on the parameters of display area and the propertiesassociated with the content, thereby producing optimized content; andselectively rendering the optimized content on a client device, therebyproviding for the selective optimization of the content withoutreconfiguring the enterprise system.